home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / clang / bccapp.zip / REPORT.H < prev    next >
C/C++ Source or Header  |  1991-09-15  |  2KB  |  96 lines

  1. /*
  2.  *
  3.  *    Report processing/creation
  4.  *
  5.  * (C) 1990 Vision Software
  6.  *
  7.  * $Id: report.h 1.2001 91/04/25 15:06:47 pcalvin release $
  8.  *
  9.  * Comments:
  10.  *
  11.  *    This class will create/manage reports from any database.
  12.  *
  13.  * Bugs:
  14.  *
  15.  *    None documented
  16.  *
  17.  */
  18. #if (!defined(__REPORT__))
  19. #define __REPORT__
  20.  
  21. #if (!defined(__DATABASE__))
  22. #include <dbase.h>
  23. #endif
  24.  
  25. /*
  26.  *    Title Alignment.
  27.  */
  28. enum AL 
  29.     {
  30.     alLeft,alCentre,alRight
  31.     };
  32.     
  33. /*
  34.  * Maintaining list of report entries..
  35.  */
  36. struct EN
  37.     {
  38.     struct EN *penNext;
  39.     struct EN *penPrev;
  40.     COL col;
  41.     SZ sz;
  42.     CCH cch;
  43.     SZ szTitle;
  44.     };
  45.  
  46. typedef UINT CEN;
  47. STATIC CONST CEN cenNil = Nil;
  48. typedef struct EN *PEN;
  49. STATIC CONST PEN penNil = (PEN)Nil;
  50.  
  51. /*
  52.  *    Report Titles
  53.  */
  54. struct TL
  55.     {
  56.     struct TL *ptlNext;
  57.     SZ sz;
  58.     AL al;
  59.     };
  60.  
  61. typedef UINT CTL;
  62. STATIC CONST CTL ctlNil = Nil;
  63. typedef struct TL* PTL;
  64. STATIC CONST PTL ptlNil = (PTL)Nil;
  65.     
  66. /*
  67.  *    Report Generation
  68.  */
  69. class REPORT
  70.     {
  71. public:
  72.     REPORT(DATABASE &rdtb);
  73.     ~REPORT();
  74.     VOID Title(SZ sz,AL al = alCentre);
  75.     VOID Entry(COL col,SZ sz,CCH cch,SZ szTitle = szNil);
  76.     VOID SetFilterTo(BOOL (*pfnFUse)(DBASE *pdb));
  77.     VOID Generate(BOOL fForward = fTrue,BOOL fPrinter = fFalse);
  78. private:
  79.     VOID CreateTitle(SZ szText,SZ szBar);
  80.     VOID CreateOutput(SZ sz);
  81.     VOID OutputFix(SZ sz,CCH cch);
  82.     DATABASE &rdtb;
  83.     BOOL (*pfnFUsePdb)(DBASE *pdb);
  84.     PEN penFirst;
  85.     PEN penCurrent;
  86.     PTL ptlFirst;
  87.     PTL ptlCurrent;
  88.     CTL ctlCurrent;
  89.     CCH cchReportWidthMac;
  90.     SZTEMP szTitleText;
  91.     SZTEMP szTitleBar;
  92.     };
  93.  
  94.     
  95. #endif    /* !defined(__REPORT__) */
  96.